﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using Entidades;
using AccesoBD;
using System.Web.UI.WebControls;

namespace CMS
{
    public partial class MisTurnosMedicoWeb : System.Web.UI.Page
    {
        int dia;
        public long legajo { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {

            grdTurnos.Visible = false;
            lblTurnosAsignados.Visible = false;
            

            if (!IsPostBack)
            {
                cmbDias.SelectedValue = "Todos";
            }

            obtenerDia();
            cargarTurnosMedico();

        }
        private void cargarTurnosMedico()
        {
            if (Session["idUserConectado"] != null)
            {
                Usuario oU = (Usuario)Session["idUserConectado"];
                legajo = oU.legajoMedico;
            }
            DateTime fech = DateTime.Now;
            List<MedicoTurnoWeb> lst = AgendasTurnos.obtenerTurnosWebMedico(dia, legajo, fech);
            List<MedicoTurnoWeb> lstNueva = new List<MedicoTurnoWeb>();
            if (lst.Count > 0)
            {
                MedicoTurnoWeb oMtw = null;
                foreach (MedicoTurnoWeb oTW in lst)
                {
                    oMtw = new MedicoTurnoWeb();
                    oMtw.dia = oTW.dia;
                    oMtw.fechaTurno = oTW.fechaTurno;

                    Especialidad oE = (Especialidad)Especialidades.ObtenerEspecialidad(oTW.idEspec);
                    oMtw.Especialidad = oE.Nombre;

                    Pacientess op = new Pacientess();
                    Paciente oPP = (Paciente)op.buscarPaciente(oTW.nroHC);

                    oMtw.Paciente = oPP.Apellido + ", " + oPP.Nombre;
                    if (oTW.idEstado == 2)
                    {
                        oMtw.Estado = "Asignado";
                    }
                    else if (oTW.idEstado == 7)
                    {
                        oMtw.Estado = "Anulado";
                    }
                    oMtw.hora = oTW.hora;
                    lstNueva.Add(oMtw);
                    oMtw = null;

                }
                if (lstNueva.Count > 0)
                {
                    grdTurnos.Visible = true;
                    grdTurnos.DataSource = lstNueva;
                    grdTurnos.DataBind();
                }
            }
            else
            {
                grdTurnos.Visible = false;
                lblTurnosAsignados.Visible = true;
                lblTurnosAsignados.Text = "No tiene Turnos para la fecha actual";
            }
        }
        private void obtenerDia()
        {
            establecerDiaAInt(cmbDias.SelectedValue);
        }

        private void establecerDiaAInt(string diaSem)
        {
            switch (diaSem)
            {
                case "Domingo":
                    dia = 1;
                    break;
                case "Lunes":
                    dia = 2;
                    break;
                case "Martes":
                    dia = 3;
                    break;
                case "Miercoles":
                    dia = 4;
                    break;
                case "Jueves":
                    dia = 5;
                    break;
                case "Viernes":
                    dia = 6;
                    break;
                case "Sabado":
                    dia = 7;
                    break;
                case "Todos":
                    dia = 8;
                    break;
            }
        }

        protected void cmbDias_SelectedIndexChanged(object sender, EventArgs e)
        {
            establecerDiaAInt(cmbDias.SelectedValue);
            cargarTurnosMedico();
        }
    }
}